//
// Created by lau on 2019-10-18.
//

#include <stdio.h>
#include "logutils.h"

namespace VideoEffect {

#define MAX_LOGBUFFER_LEN 2048
    static char s_aStringBuf[MAX_LOGBUFFER_LEN];

    void initStringBuf(const char *tag, const char *fmtMsg, ...);

    void _LogDebug(const char *tag, const char *fmtMsg, ...) {
        initStringBuf(tag, fmtMsg);
        __android_log_print(ANDROID_LOG_DEBUG, tag, "%s", s_aStringBuf);
    }

    void _LogInfo(const char *tag, const char *fmtMsg, ...) {
        initStringBuf(tag, fmtMsg);
        __android_log_print(ANDROID_LOG_INFO, tag, "%s", s_aStringBuf);
    }

    void _LogWarn(const char *tag, const char *fmtMsg, ...) {
        initStringBuf(tag, fmtMsg);
        __android_log_print(ANDROID_LOG_WARN, tag, "%s", s_aStringBuf);
    }

    void _LogError(const char *tag, const char *fmtMsg, ...) {
        initStringBuf(tag, fmtMsg);
        __android_log_print(ANDROID_LOG_ERROR, tag, "%s", s_aStringBuf);
    }

    void initStringBuf(const char *tag, const char *fmtMsg, ...) {
        va_list vaList;
        va_start(vaList, fmtMsg);
        vsnprintf(s_aStringBuf, MAX_LOGBUFFER_LEN, fmtMsg, vaList);
        va_end(vaList);
    }
}